package edu.yctc.kc.function;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;

import edu.yctc.kc.entity.Score;
import edu.yctc.kc.util.Check;
import edu.yctc.kc.util.Sort;

/**
 * @className Calculate
 * @description 软件测试考察作业第二题
 * @author 赵宜珺
 * @date 2019年12月28日
 *
 */
public class Calculate {

    /** 有效成绩个数 */
    private static int NUMBER = 0;

    /** 总分 */
    private static double SUM = 0;

    /** 平均分 */
    private static double AVERAGE = 0;

    public void scoreProcess(ArrayList<Score> scoreList) {
        int loop = 0;
        if (scoreList.isEmpty()) {
            System.out.println("成绩列表为空");
            return;
        } else {
            if (scoreList.size() < 10) {
                System.out.println("成绩列表元素少于10个");
            } else {
                // 1. 排序
                Collections.sort(scoreList, new Sort());
                Iterator<Score> iterator = scoreList.iterator();
                while (iterator.hasNext() && ++loop <= 10) {
                    Score score = iterator.next();
                    if (Check.isLegal(score)) {
                        NUMBER++;
                        SUM += score.getStudentScore();
                    }
                }
                // 无有效成绩
                if (NUMBER == 0) {
                    System.out.println("无有效成绩");
                    return;
                } else {
                    // 2. 输出有效成绩(0-100分)的个数
                    System.out.println("有效成绩个数: " + NUMBER);
                    // 3. 输出总成绩
                    System.out.println("总成绩: " + SUM);
                    // 4. 输出平均成绩
                    AVERAGE = SUM / NUMBER;
                    System.out.println("平均成绩: " + AVERAGE);
                }

            }

        }
    }
}
